



Returning Multiple values in Java


Java doesn’t support multi-value returns. We can use following solutions to return multiple values.
 
If all returned elements are of same type
We can return an array in Java.  Below is a Java program to demonstrate the same.







 


 

 













// A Java program to demonstrate that a method 
// can return multiple values of same type by 
// returning an array 
class Test { 
    // Returns an array such that first element 
    // of array is a+b, and second element is a-b 
    static int[] getSumAndSub(int a, int b) 
    { 
        int[] ans = new int[2]; 
        ans[0] = a + b; 
        ans[1] = a - b; 
  
        // returning array of elements 
        return ans; 
    } 
  
    // Driver method 
    public static void main(String[] args) 
    { 
        int[] ans = getSumAndSub(100, 50); 
        System.out.println("Sum = " + ans[0]); 
        System.out.println("Sub = " + ans[1]); 
    } 
} 



















Output:


Sum = 150

Sub = 50



 
If returned elements are of different types
Using Pair (If there are only two returned values)
We can use Pair in Java to return two values.








 


 

 













// Returning a pair of values from a function 
import javafx.util.Pair; 
  
class GfG { 
    public static Pair<Integer, String> getTwo() 
    { 
        return new Pair<Integer, String>(10, "GeeksforGeeks"); 
    } 
  
    // Return multiple values from a method in Java 8 
    public static void main(String[] args) 
    { 
        Pair<Integer, String> p = getTwo(); 
        System.out.println(p.getKey() + " " + p.getValue()); 
    } 
} 



















If there are more than two returned values
We can encapsulate all returned types into a class and then return an object of that class.
Let us have a look at the following code.







 


 

 













// A Java program to demonstrate that we can return 
// multiple values of different types by making a class 
// and returning an object of class. 
  
// A class that is used to store and return 
// three members of different types 
class MultiDivAdd { 
    int mul; // To store multiplication 
    double div; // To store division 
    int add; // To store addition 
    MultiDivAdd(int m, double d, int a) 
    { 
        mul = m; 
        div = d; 
        add = a; 
    } 
} 
  
class Test { 
    static MultiDivAdd getMultDivAdd(int a, int b) 
    { 
        // Returning multiple values of different 
        // types by returning an object 
        return new MultiDivAdd(a * b, (double)a / b, (a + b)); 
    } 
  
    // Driver code 
    public static void main(String[] args) 
    { 
        MultiDivAdd ans = getMultDivAdd(10, 20); 
        System.out.println("Multiplication = " + ans.mul); 
        System.out.println("Division = " + ans.div); 
        System.out.println("Addition = " + ans.add); 
    } 
} 



















Output:


Multiplication = 200

Division = 0.5

Addition = 30



Returning list of Object Class







 


 

 













// Java program to demonstrate return of 
// multiple values from a function using 
// list Object class. 
import java.util.*; 
  
class GfG { 
    public static List<Object> getDetails() 
    { 
        String name = "Geek"; 
        int age = 35; 
        char gender = 'M'; 
  
        return Arrays.asList(name, age, gender); 
    } 
  
    // Driver code 
    public static void main(String[] args) 
    { 
        List<Object> person = getDetails(); 
        System.out.println(person); 
    } 
} 



















Output:


[Geek, 35, M]



This article is  contributed by Twinkle Tyagi. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above













 


 

 
Most popular in Java
 



 

 
Most visited in School Programming
 


  


 













